home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / diskmags / amiga_9301b.lha / Suchalgorithmen / Listing 2 < prev    next >
Encoding:
Text File  |  1992-12-15  |  431 b   |  17 lines

  1. /* Diese Routine richtet das erforderliche Sprung-Array
  2.  * fürs Knuth-Morris-Pratt-Verfahren ein
  3.  */
  4. long NextArray[50]; /* Falls nötig, größer dimensionieren */
  5.  
  6. void InitNextArray(char *pattern)
  7. {
  8.   long i,j, M=strlen(pattern);
  9.  
  10.   NextArray[0]=-1;
  11.  
  12.   for( i=0, j=-1; i<M; i++,j++,NextArray[i]=
  13.                  (pattern[i]==pattern[j])? NextArray[j]:j )
  14.     while( (j>=0) && (pattern[i] != pattern[j] ) )
  15.       j=NextArray[j];
  16. }
  17.